home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-3872 / kandy173 / kndpslib.ps < prev    next >
Text File  |  1993-10-17  |  7KB  |  303 lines

  1. %%BeginProlog
  2. %%BeginProcSet: "KandinskY-builtin-GEM-prologue" "(0.0)" ""
  3. /KDdict 60 dict def
  4. KDdict begin
  5. /Reencsmalldict 12 dict def
  6. /ReEncodeSmall
  7. { Reencsmalldict begin
  8.   /newcodesandnames exch def
  9.   /newfontname exch def
  10.   /basefontname exch def
  11.   /basefontdict basefontname findfont def
  12.   /newfont basefontdict maxlength dict def
  13.   basefontdict
  14.    { exch dup /FID ne
  15.     { dup /Encoding eq
  16.      { exch dup length array copy newfont 3 1 roll put }
  17.      { exch newfont 3 1 roll put }
  18.      ifelse
  19.     }
  20.     { pop pop }
  21.     ifelse
  22.    } forall
  23.   newfont /FontName newfontname put
  24.   newcodesandnames aload pop
  25.   newcodesandnames length 2 idiv
  26.    { newfont /Encoding get 3 1 roll put }
  27.    repeat
  28.   newfontname newfont definefont pop
  29.   end
  30. } def
  31. /germvec [
  32. 8#201 /udieresis
  33. 8#204 /adieresis
  34. 8#216 /Adieresis
  35. 8#224 /odieresis
  36. 8#231 /Odieresis
  37. 8#232 /Udieresis
  38. 8#236 /germandbls
  39. ] def
  40. /Times-Roman /Times-Roman-Germ germvec ReEncodeSmall
  41. /Times-Italic /Times-Italic-Germ germvec ReEncodeSmall
  42. /Times-Bold /Times-Bold-Germ germvec ReEncodeSmall
  43. /Times-BoldItalic /Times-BoldItalic-Germ germvec ReEncodeSmall
  44. /Helvetica /Helvetica-Germ germvec ReEncodeSmall
  45. /Helvetica-Bold /Helvetica-Bold-Germ germvec ReEncodeSmall
  46. /Helvetica-Oblique /Helvetica-Oblique-Germ germvec ReEncodeSmall
  47. /Helvetica-BoldOblique /Helvetica-BoldOblique-Germ germvec ReEncodeSmall
  48. /Courier /Courier-Germ germvec ReEncodeSmall
  49. /Courier-Bold /Courier-Bold-Germ germvec ReEncodeSmall
  50. /Courier-Oblique /Courier-Oblique-Germ germvec ReEncodeSmall
  51. /Courier-BoldOblique /Courier-BoldOblique-Germ germvec ReEncodeSmall
  52.  
  53. /tr{ /Times-Roman-Germ findfont exch scalefont setfont }def
  54. /tri{ /Times-Italic-Germ findfont exch scalefont setfont }def
  55. /trb{ /Times-Bold-Germ findfont exch scalefont setfont }def
  56. /trbi{ /Times-BoldItalic-Germ findfont exch scalefont setfont }def
  57. /ss{ /Helvetica-Germ findfont exch scalefont setfont }def
  58. /ssb{ /Helvetica-Bold-Germ findfont exch scalefont setfont }def
  59. /ssi{ /Helvetica-Oblique-Germ findfont exch scalefont setfont }def
  60. /ssbi{ /Helvetica-BoldOblique-Germ findfont exch scalefont setfont }def
  61. /tt{ /Courier-Germ findfont exch scalefont setfont }def
  62. /ttb{ /Courier-Bold-Germ findfont exch scalefont setfont }def
  63. /tti{ /Courier-Oblique-Germ findfont exch scalefont setfont }def
  64. /ttbi{ /Courier-BoldOblique-Germ findfont exch scalefont setfont }def
  65.  
  66.  
  67. %Prozeduren für Füllmuster aus dem Buch
  68. %"PostScript - Einführung und Leitfaden A", S. 229ff
  69. /SetUserScreenDict
  70.  22 dict def
  71. SetUserScreenDict begin
  72. /FindResolution
  73. { 72 0 matrix defaultmatrix
  74.   dtransform
  75.   /YRes exch def
  76.   /XRes exch def
  77.   XRes dup mul
  78.   YRes dup mul add sqrt
  79. } def
  80. end
  81.  
  82. /SetUserScreen
  83. { SetUserScreenDict begin
  84.   /Spotfunction exch def
  85.   /Screenangle exch def
  86.   /Cellsize exch def
  87.   gsave
  88.   Screenangle rotate
  89.   Cellsize dup scale
  90.   1 0 dtransform
  91.   grestore
  92.   /Y1 exch def
  93.   /X1 exch def
  94.   /Veclength X1 dup mul
  95.    Y1 dup mul add sqrt def
  96.  
  97.   /Frequency FindResolution
  98.    Veclength div def
  99.  
  100.   /NewScreenangle
  101.    Y1 X1 atan def
  102.  
  103.   Frequency NewScreenangle
  104.   /Spotfunction load
  105.   setscreen
  106.   end
  107. } def
  108.  
  109. /SetPatternDict 18 dict def
  110. SetPatternDict begin
  111. /BitIsOn
  112. { /YBit exch def
  113.   /XBit exch def
  114.   /Bytevalue Bstring
  115.    YBit Bwidth mul
  116.    XBit 8 idiv
  117.    add get def
  118.   /Mask 1 7 XBit 8 mod
  119.    sub bitshift def
  120.   Bytevalue Mask and 0 ne
  121. } def
  122. end
  123.  
  124. /BitpatternSpotfunction
  125. { SetPatternDict begin
  126.   /Y exch def
  127.   /X exch def
  128.   /XIndex X 1 add 2 div
  129.    BPSide mul cvi def
  130.   /YIndex Y 1 add 2 div
  131.    BPSide mul cvi def
  132.   XIndex YIndex BitIsOn
  133.   { /OnBits OnBits
  134.      1 add def 1 }
  135.   { /OffBits OffBits
  136.      1 add def 0 }
  137.   ifelse
  138.   end
  139. } def
  140.  
  141. /SetPattern
  142. { SetPatternDict begin
  143.   /Cellsz exch def
  144.   /Angle exch def
  145.   /Bwidth exch def
  146.   /BPSide exch def
  147.   /Bstring exch def
  148.   /OnBits 0 def
  149.   /OffBits 0 def
  150.   Cellsz Angle
  151.   /BitpatternSpotfunction load
  152.   SetUserScreen
  153.   {} settransfer
  154.   OffBits OffBits OnBits
  155.   add div setgray
  156.   end
  157. } def
  158.  
  159.  
  160. %Eingabe: string
  161. %Ausgabe: Unterstreichung
  162. /ul
  163. { dup stringwidth pop 0 gsave 0.4 setlinewidth
  164.    currentpoint newpath moveto 0 -2 padj rmoveto padj rlineto
  165.    closepath stroke grestore
  166. }def
  167.  
  168. %Eingabe: string
  169. %Gibt string als Outline aus
  170. /KDoshow
  171. { gsave currentpoint newpath moveto 0.2 setlinewidth false
  172.    charpath closepath stroke
  173. }def
  174.  
  175. %Eingabe: string breite wordspace? underline?
  176. %Gibt string ggf. unterstrichen ggf. in breite durch Dehnung der
  177. %Wortzwischenräume aus
  178. /KDwtextdict 5 dict def
  179. /KDwtext
  180. {
  181.   /str exch def /strwd exch def /nsp exch def /underl exch def
  182.   str stringwidth pop /pstrwd exch def
  183.   underl { gsave 0.4 setlinewidth currentpoint newpath
  184.   moveto 0 -2 padj rmoveto strwd 0 padj rlineto 
  185.   closepath stroke grestore } if
  186.  nsp 0 ne
  187.  { strwd pstrwd sub nsp div 0 8#040 str widthshow }
  188.  { str show } ifelse
  189. } bind def
  190.  
  191. %Eingabe: string breite underline?
  192. %Gibt string ggf. unterstrichen in breite durch Dehnung der
  193. %Buchstabenzwischenräume aus
  194. /KDatextdict 4 dict def
  195. /KDatext
  196. {
  197.   KDatextdict begin
  198.   /str exch def /strwd exch def /underl exch def
  199.   str stringwidth pop /pstrwd exch def
  200.   underl { gsave 0.4 setlinewidth currentpoint newpath
  201.   moveto 0 -2 padj rmoveto strwd 0 padj rlineto
  202.   closepath stroke grestore } if
  203.   strwd pstrwd sub str length dup 1 gt { 1 sub } if div 0 str ashow
  204.   end
  205. }def
  206.  
  207. %Eingabe: spitze(x,y) schwanz(x,y) laenge
  208. %Ausgabe: Pfeil
  209. /KDarrowdict 7 dict def
  210. /KDarrow
  211. { KDarrowdict begin
  212.     /leg exch def /taily exch def /tailx exch def
  213.     /tipy exch def /tipx exch def
  214.     gsave
  215.        1 setlinecap
  216.        newpath
  217.           tipx tipy translate
  218.           taily tipy sub /num exch def
  219.           tailx tipx sub /den exch def
  220.           num den eq den 0 eq and { /num 1 def } if
  221.           num den atan 16 sub rotate
  222.           leg 0 moveto 0 0 lineto
  223.           32 rotate
  224.           leg 0 lineto
  225.        closepath fill
  226.     grestore
  227.   end
  228. }bind def
  229.  
  230. %Eingabe: Markerhöhe
  231. %Ausgabe: Kreuz der Höhe Markerhöhe
  232. /KDmarkdict 2 dict def
  233. /KDmarkpoint
  234. { KDmarkdict begin
  235.   dup 2 div /h2 exch def /h exch def
  236.   moveto h2 h2 rmoveto h neg h neg rlineto 0 h rmoveto h h neg rlineto
  237.   stroke
  238.   end
  239. }def
  240.  
  241. /KDline{ newpath moveto lineto stroke }def
  242.  
  243. /KDpolydict 1 dict def
  244. /KDpoly
  245. { KDpolydict begin
  246.   /n exch def
  247.   moveto
  248.   2 1 n{ pop lineto }for
  249.   end
  250. }def
  251.  
  252. /KDboxdict 2 dict def
  253. /KDbox
  254. { KDboxdict begin
  255.   /h exch def /w exch def
  256.   moveto
  257.   w 0 rlineto
  258.   0 h rlineto
  259.   w neg 0 rlineto
  260.   closepath
  261.   end
  262. }def
  263.  
  264. /KDrboxdict 5 dict def
  265. /KDrbox
  266. { KDrboxdict begin
  267.   /r exch def /y2 exch def /x2 exch def
  268.   /y1 exch def /x1 exch def
  269.   x1 y2 r sub moveto
  270.   x1 y1 x2 y1 r arcto
  271.   x2 y1 x2 y2 r arcto
  272.   x2 y2 x1 y2 r arcto
  273.   x1 y2 x1 y1 r arcto
  274.   closepath
  275.   end
  276. }def
  277.  
  278. /KDarcdict 7 dict def
  279. /KDarc
  280. { KDarcdict begin
  281.   /ea exch def /ba exch def /ry exch def /rx exch def
  282.   /y exch def /x exch def
  283.   /savematrix matrix currentmatrix def
  284.   x y translate
  285.   rx ry neg scale
  286.   0 0 1 ba ea arc
  287.   savematrix setmatrix
  288.   end
  289. }def
  290.  
  291. /KDpatscale 1 def
  292. /KDpatmul{ KDpatscale mul }def
  293.  
  294. /KDpoint{ 72 div 254 mul }def
  295. /KDmm{ 254 div 72 mul }def
  296.  
  297. /KDcharheight 12 KDmm def
  298.  
  299. end
  300. %%EndProcSet
  301. %%EndProlog
  302. KDdict begin
  303.